package Both;

import java.util.ArrayList;

import Serveur.Serialization;

public enum Ville {
    PARIS("paris"), NICE("Nice"), LYON("Lyon"), MARSEILLE("Marseille"), GRENOBLE(
            "grenoble"), UNKNOW("unknow");

    private String ville;

    Ville(String ville) {
        ville.replace(Serialization.CAR_SPACE, Serialization.CAR_REPLACE);
        this.setVille(ville);
    }

    /**
     * retourne la ville
     * 
     * @return ville
     */
    public String getVille() {
        return ville;
    }

    /**
     * change la ville en utilisant ville comme type String
     * 
     * @param ville
     */
    public void setVille(String ville) {
        this.ville = ville;
    }

    /**
     * permet de convertire Ville (String) en Ville (Ville )
     * 
     * @param String
     *            ville
     * @return Ville
     */

    public static Ville toVille(String ville) {
        ville = ville.toUpperCase();
        Ville retour = null;
        try {
            retour = Enum.valueOf(Ville.class, ville);
        } catch (Exception e) {
            retour = UNKNOW;
        }
        return retour;
    }

    /**
     * Print all valid commands to System.out.
     */
    public static void showAll() {
        Ville[] tableVille = Ville.values();
        for (Ville ville : tableVille) {
            System.out.println(ville);
        }
    }

    /**
     * retourne une liste des Ville
     * 
     * @return ArrayListe<Ville>
     */
    public static ArrayList<Ville> allVille() {
        ArrayList<Ville> listVille = new ArrayList<Ville>();
        Ville[] tableVille = Ville.values();
        for (Ville ville : tableVille) {
            listVille.add(ville);
        }
        return listVille;
    }

}
